package simple.string;

/**
 * <a href="https://leetcode.cn/problems/maximum-number-of-balloons/">1189. “气球” 的最大数量</a>
 * 给你一个字符串 text，你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"（气球）。
 * 字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。
 * 示例 1：
 *   输入：text = "nlaebolko"
 *   输出：1
 * 示例 2：
 *   输入：text = "loonbalxballpoon"
 *   输出：2
 * 示例 3：
 *   输入：text = "leetcode"
 *   输出：0
 * 提示：
 *   1 <= text.length <= 10^4
 *   text 全部由小写英文字母组成
 * @author 刘学松
 * @date 2023-07-26 14:54
 */
public class 气球的最大数量 {
    public int maxNumberOfBalloons(String text) {
        int b = 0, a = 0, l = 0, o = 0, n = 0;
        for (char c : text.toCharArray()) {
            switch(c) {
                case 'b':
                    b++;
                    break;
                case 'a':
                    a++;
                    break;
                case 'l':
                    l++;
                    break;
                case 'o':
                    o++;
                    break;
                case 'n':
                    n++;
                    break;
                default:
                    break;
            }
        }
        return Math.min(b, Math.min(a, Math.min(l >> 1, Math.min(o >> 1, n))));
    }
}
